CREATE TABLE [dbo].[tb_Mensajes]
(
[IDMensaje] [int] NOT NULL IDENTITY(1, 1),
[Fecha] [datetime] NOT NULL,
[Origen] [int] NULL,
[Destino] [int] NOT NULL,
[Asunto] [varchar] (250) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[TipoAsunto] [int] NOT NULL,
[Respuesta] [int] NULL,
[Estado] [int] NOT NULL
) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE TRIGGER [dbo].[EstablecerOrigen] ON [dbo].[tb_Mensajes] 
FOR INSERT
AS

DECLARE @IDUsuario INT
SELECT @IdUsuario = IdUsuario FROM Tb_Usuarios WHERE NtUser = System_User 

UPDATE M Set M.Origen = @IDUsuario FROM Tb_Mensajes M INNER JOIN INSERTED I ON I.IdMensaje = M.IdMensaje
GO
ALTER TABLE [dbo].[tb_Mensajes] ADD CONSTRAINT [PK_Tb_Mensajes] PRIMARY KEY CLUSTERED  ([IDMensaje]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[tb_Mensajes] ADD CONSTRAINT [FK_Tb_Mensajes_tb_Usuarios1] FOREIGN KEY ([Destino]) REFERENCES [dbo].[tb_Usuarios] ([idUsuario])
GO
ALTER TABLE [dbo].[tb_Mensajes] WITH NOCHECK ADD CONSTRAINT [FK_Tb_Mensajes_Tb_EstadosDeMensajes] FOREIGN KEY ([Estado]) REFERENCES [dbo].[Tb_EstadosDeMensajes] ([IDEstadoSolicitud])
GO
ALTER TABLE [dbo].[tb_Mensajes] ADD CONSTRAINT [FK_Tb_Mensajes_tb_Usuarios] FOREIGN KEY ([Origen]) REFERENCES [dbo].[tb_Usuarios] ([idUsuario])
GO
ALTER TABLE [dbo].[tb_Mensajes] ADD CONSTRAINT [FK_Tb_Mensajes_Tb_Mensajes] FOREIGN KEY ([Respuesta]) REFERENCES [dbo].[tb_Mensajes] ([IDMensaje])
GO
ALTER TABLE [dbo].[tb_Mensajes] WITH NOCHECK ADD CONSTRAINT [FK_Tb_Mensajes_Tb_TiposDeAsunto] FOREIGN KEY ([TipoAsunto]) REFERENCES [dbo].[Tb_TiposDeAsunto] ([idTipoAsunto])
GO
